Matthias Clasen [Fri, 4 Dec 2015 05:34:52 +0000 (00:34 -0500)]
check button: Convert to gadgets
Use a gadget for the button, and for the indicator.
A complication here is that GtkCheckButton (and
GtkRadioButton) have a totally different appearance
depending on the ::draw-indicator property. If an
indicator is not required, we just reuse the
GtkButton gadget.
This mostly works; some minor sizing issues left, e.g. cranking
up the indicator-size causes the checkbutton grid in testgtk
to overlap.
Matthias Clasen [Fri, 4 Dec 2015 02:56:25 +0000 (21:56 -0500)]
button: Convert to gadgets
Matthias Clasen [Thu, 3 Dec 2015 19:22:50 +0000 (14:22 -0500)]
label: Convert to gadgets
This removes some hairy code handling with borders and padding,
which may or may not be correct. The examples in testheightforwidth
all continue to work, and min-width now works for labels.
Matthias Clasen [Mon, 14 Dec 2015 21:10:54 +0000 (16:10 -0500)]
Adwaita: Update color swatch styling
The adjustments here are provisional and need an artistic eye.
Matthias Clasen [Mon, 14 Dec 2015 21:10:28 +0000 (16:10 -0500)]
colorswatch: Convert to gadgets
Use gadgets for the widget and the overlay.
Matthias Clasen [Mon, 14 Dec 2015 20:57:38 +0000 (15:57 -0500)]
widget: Deprecate some style properties
Deprecate the ::wide-separators and ::separator-width/height
style properties.
Matthias Clasen [Mon, 14 Dec 2015 20:56:56 +0000 (15:56 -0500)]
Adwaita: Update separator styling
Separators no longer draw a line with the foreground color,
but instead just draw background.
Matthias Clasen [Mon, 14 Dec 2015 20:56:29 +0000 (15:56 -0500)]
separator: port to gadgets
As part of this, stop using custom rendering code for wide
and non-wide separators.
Matthias Clasen [Thu, 26 Nov 2015 19:59:57 +0000 (14:59 -0500)]
spinner: Use a gadget
This gives us min-width/height support. Currently, the spinner
still has a hardcoded minimum size of 16 and doesn't grow beyond
32. We may want to revisit that at some point.
Matthias Clasen [Tue, 24 Nov 2015 12:22:52 +0000 (07:22 -0500)]
progressbar: Convert to gadgets
Use gadgets for the text, the trough and the progress.
Benjamin Otte [Mon, 14 Dec 2015 04:29:35 +0000 (05:29 +0100)]
iconhelper: Queue resize on invalidation
When things change in the iconhelper, queue a resize on the owner widget
so that it automatically resizes.
Only do this for iconhelpers that are used as gadgets though, not for
temporary helpers - and to check this, check if the node is transient.
Benjamin Otte [Mon, 14 Dec 2015 04:22:08 +0000 (05:22 +0100)]
entry: Turn icons into gadgets
Benjamin Otte [Fri, 20 Nov 2015 00:17:06 +0000 (01:17 +0100)]
spinbutton: Port the buttons to gadgets
Benjamin Otte [Mon, 14 Dec 2015 03:00:31 +0000 (04:00 +0100)]
iconhelper: Finish gadget conversion
Implement missing vfuncs
Benjamin Otte [Mon, 14 Dec 2015 01:33:21 +0000 (02:33 +0100)]
rendericon: Restore cairo matrix after rendering
Benjamin Otte [Fri, 11 Dec 2015 14:12:19 +0000 (15:12 +0100)]
iconhelper: Handle invalidation
When CSS, direction or scale factor change, handle the invalidation
inside the iconhelper.
This way the widgets using them don't have to.
Benjamin Otte [Wed, 9 Dec 2015 17:32:05 +0000 (18:32 +0100)]
iconhelper: Use the gadget's node
... instead of looking at the widget's style context.
This removes all calls to the style context.
Benjamin Otte [Wed, 9 Dec 2015 17:25:36 +0000 (18:25 +0100)]
iconhelper: Require passing a cssnode to the constructor
Note that we don't use it yet.
Benjamin Otte [Wed, 9 Dec 2015 13:07:07 +0000 (14:07 +0100)]
iconhelper: Use the gadget's owner property
Don't keep the owner widget ourselves.
Benjamin Otte [Wed, 9 Dec 2015 13:01:46 +0000 (14:01 +0100)]
iconhelper: Turn into gadget
This is just the basic conversion to inheriting from
GTK_TYPE_CSS_GADGET.
Matthias Clasen [Tue, 17 Nov 2015 03:55:01 +0000 (22:55 -0500)]
image: Port to gadgets
Benjamin Otte [Wed, 18 Nov 2015 00:47:53 +0000 (01:47 +0100)]
box: Port to gadgets
Benjamin Otte [Wed, 18 Nov 2015 00:47:16 +0000 (01:47 +0100)]
container: Split out a function
Computing the clip for all children is something I want to do in other
places.
Benjamin Otte [Mon, 9 Mar 2015 05:16:50 +0000 (06:16 +0100)]
switch: Port to gadgets
Benjamin Otte [Wed, 9 Sep 2015 17:15:01 +0000 (19:15 +0200)]
gadget: Add GtkCssCustomGadget
The thing you use when you want to custom-do everything.
Benjamin Otte [Tue, 8 Sep 2015 22:13:11 +0000 (00:13 +0200)]
gadget: Add the concept of a "gadget"
A gadget is halfway between a widget and a CSS node. It's supposed to
provide the minimum convenicence around CSS nodes until we've figured
out how to integrate them with widgets.
Benjamin Otte [Thu, 13 Dec 2012 02:10:25 +0000 (03:10 +0100)]
css: Add min-width/height CSS properties
Benjamin Otte [Wed, 9 Dec 2015 17:20:06 +0000 (18:20 +0100)]
treeview: Reposition dnd button css node properly
After the drag ends, the button node went to the wrong place and then
looked like a regular button. Fix that.
Chun-wei Fan [Tue, 15 Dec 2015 07:37:33 +0000 (15:37 +0800)]
MSVC builds: Build more tools in gtk/
Build the gtk-update-icon-cache, gtk-builder-tool and gtk-query-settings
tools and run gtk-update-icon-cache as part of the post-build
"installation" process.
Pointed out (and reminded) by Paolo Borelli in bug 759436 that we should
build, "install" and run gtk-update-icon-cache in the MSVC builds as well.
Benjamin Otte [Tue, 15 Dec 2015 00:14:57 +0000 (01:14 +0100)]
inspector: Fix quick-fix
Constructing GtkCssStyleChange objects without styles is forbidden, so
don't do it. Instead untangle the callback from the actual update
function and call that untangled function directly.
Benjamin Otte [Tue, 15 Dec 2015 00:07:03 +0000 (01:07 +0100)]
cssnode: Clear cache if reusing style
When we reuse styles that didn't change across changes to the source
CSS, make sure we clear the caches. Otherwise child nodes will pick up
styles from the old source CSS.
Piotr Drąg [Mon, 14 Dec 2015 23:51:33 +0000 (00:51 +0100)]
Updated POTFILES.in
Carlos Garnacho [Mon, 14 Dec 2015 14:44:29 +0000 (15:44 +0100)]
win32: Use GdkSeatDefault to implement GdkSeat
Carlos Garnacho [Mon, 14 Dec 2015 14:44:15 +0000 (15:44 +0100)]
quartz: Use GdkSeatDefault to implement GdkSeat
Carlos Garnacho [Mon, 14 Dec 2015 14:43:54 +0000 (15:43 +0100)]
broadway: Use GdkSeatDefault to Implement GdkSeat
Carlos Garnacho [Wed, 9 Dec 2015 11:56:26 +0000 (12:56 +0100)]
wayland: Improve creation of windowing surface roles
We no longer need a grabbed seat, instead we'll just use the default
seat if this happens, not without first warning and recommending
gdk_seat_grab() for the operation.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:55:39 +0000 (12:55 +0100)]
wayland: Replace deprecated functions
We can just gdk_seat_ungrab() here.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:29:52 +0000 (12:29 +0100)]
gdk: Deprecate GdkDeviceManager and gdk_device_grab/ungrab()
GdkSeat is now the preferred way to deal with input devices and grabs.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:49:43 +0000 (12:49 +0100)]
wayland: Emit cancelled on touchpoint used on window dragging/moving
This allows GDK to unset the grab itself. Also, make sure we unset
the "pointer emulating" touch on the device if this is the
pointer emulating sequence.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:46:08 +0000 (12:46 +0100)]
wayland: Unset "pointer emulating" touch on wl_touch.cancel
And emit the corresnponding leave event on its master pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:39:43 +0000 (12:39 +0100)]
gdk: Manage GDK_TOUCH_CANCEL events on gdk_windowing_got_event()
These events must get active/implicit grabs undone, and can be done
on client-side code.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:42:33 +0000 (12:42 +0100)]
wayland: Make gdk_wayland_device_get_focus() work on touch
So we can figure out the focus for the master device.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Wed, 9 Dec 2015 11:25:10 +0000 (12:25 +0100)]
GdkDisplay: Add ::seat-added/removed signals
These will be emitted as seats come and go.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:40:56 +0000 (19:40 +0100)]
wayland: Add GdkSeat implementation
GdkWaylandDeviceData conceptually gathers the data that belongs to
a seat, so it's been renamed (although the old typedef stays, plenty
of refactoring is due here...).
The methods in GdkSeatClass have also been implemented, the most
remarkable is ::grab, which ensures the grab is performed on all
the relevant "master" devices.
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:56:41 +0000 (19:56 +0100)]
GtkTreeView: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:56:25 +0000 (19:56 +0100)]
GtkNotebook: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:55:45 +0000 (19:55 +0100)]
GtkEntryCompletion: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:55:15 +0000 (19:55 +0100)]
GtkComboBox: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:54:54 +0000 (19:54 +0100)]
GtkMenu: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:54:31 +0000 (19:54 +0100)]
GtkCellRendererAccel: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:54:01 +0000 (19:54 +0100)]
GtkButton: Use gdk_seat_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:53:36 +0000 (19:53 +0100)]
x11: Use GdkSeatDefault to implement GdkSeat
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Mon, 14 Dec 2015 19:24:40 +0000 (20:24 +0100)]
x11: Use gdk_event_set_device() consistently
Move the variable definitions above the function, and use those
throughout all branches of the event handling switch.
Carlos Garnacho [Thu, 26 Nov 2015 18:53:09 +0000 (19:53 +0100)]
GdkEvent: Add GdkSeat getter and internal setter
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:52:23 +0000 (19:52 +0100)]
GdkDisplay: Add GdkSeat getters
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:50:57 +0000 (19:50 +0100)]
GdkDevice: Add GdkSeat property and getter
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:49:10 +0000 (19:49 +0100)]
gdk: Add GdkSeatDefault
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Thu, 26 Nov 2015 18:47:38 +0000 (19:47 +0100)]
gdk: Add GdkSeat
https://bugzilla.gnome.org/show_bug.cgi?id=759309
Carlos Garnacho [Fri, 11 Dec 2015 12:16:13 +0000 (13:16 +0100)]
x11: Use client pointer as default core pointer for gtk+2 API
There is no need to fiddle with the master devices list.
https://bugzilla.gnome.org/show_bug.cgi?id=759323
Lucas Baudin [Sun, 13 Dec 2015 18:24:50 +0000 (19:24 +0100)]
wayland: recursively search for the settings schema.
On some systems, the gtk settings are not used properly for wayland.
Indeed, g_settings_schema_source_get_default is used, and as the docs says it,
"all lookups performed against the default source should probably be done
recursively.".
https://bugzilla.gnome.org/show_bug.cgi?id=759409
Dušan Kazik [Mon, 14 Dec 2015 10:53:55 +0000 (10:53 +0000)]
Updated Slovak translation
Piotr Drąg [Mon, 14 Dec 2015 00:45:11 +0000 (01:45 +0100)]
Updated POTFILES.in
Matthias Clasen [Sun, 13 Dec 2015 23:24:41 +0000 (18:24 -0500)]
dnd: Cleanups
Remove some now unused includes and dead code, and rename
gtk_drag_set_icon_window to gtk_drag_set_icon_widget_internal,
since it is no longer restricted to toplevel windows.
Matthias Clasen [Sun, 13 Dec 2015 21:01:05 +0000 (16:01 -0500)]
testdnd2: Add some verbosity
This makes it easier to see that we're missing some signals
under Wayland.
Matthias Clasen [Mon, 7 Dec 2015 20:08:27 +0000 (15:08 -0500)]
dnd: Stop doing cancel animation in GTK+
Under Wayland, the compositor does it, so there is no need
for us to move the window ourselves. For X11, we are now
doing the animation from the X11 backend. Trigger that by
calling gdk_drag_drop_done().
What changes here is that we have to keep the icon_window
alive for as long as the drag context exists. Use a weak
reference to do so.
Matthias Clasen [Mon, 7 Dec 2015 23:28:06 +0000 (18:28 -0500)]
x11: Implement drag cancel animation
Showing the drag cancel animation can be done in the X11
drag context implementation now that we hold the drag
window there, and have the start coordinates.
Since we can't control if and when the application destroys
the drag widget, we take a snapshot of the window contents
and display that during the animation. This should be good
enough for all practical purposes.
Matthias Clasen [Mon, 7 Dec 2015 20:07:13 +0000 (15:07 -0500)]
gdk: Add gdk_drag_drop_done
This will allow us to move the drag cancel animation to GDK.
For now, it does nothing.
Matthias Clasen [Mon, 7 Dec 2015 20:07:54 +0000 (15:07 -0500)]
x11: Store drag start coordinates
These will be used in later commits.
Matthias Clasen [Mon, 7 Dec 2015 19:21:20 +0000 (14:21 -0500)]
dnd: Pass start coordinates when creating the drag context
This will be used in subsequent commits.
Matthias Clasen [Mon, 7 Dec 2015 18:47:45 +0000 (13:47 -0500)]
gdk: Allow passing the start coordinates in drag_begin
Add a variant of gdk_drag_begin that takes the start position
in addition to the device. All backend implementation have been
updated to accept (and ignore) the new arguments.
Subsequent commits will make use of the data in some backends.
Benjamin Otte [Sun, 13 Dec 2015 15:02:34 +0000 (16:02 +0100)]
cssnode: Set new style if it's animated
In commit
2c613166771ea9118ebda91c311f11b3462330fb we avoided emitting
the style-changed signal if no CSS property changed.
Unfortunately, this also caused CSS styles to not be updated when
animations started if those animations did not change any CSS value
immediately. In those cases the animation would just never start.
The obvious example was the spinner.
Daniel Mustieles [Sun, 13 Dec 2015 12:31:25 +0000 (13:31 +0100)]
Updated Spanish translation
Daniel Mustieles [Sun, 13 Dec 2015 12:31:15 +0000 (13:31 +0100)]
Updated Spanish translation
Pedro Albuquerque [Sun, 13 Dec 2015 08:16:32 +0000 (08:16 +0000)]
Updated Portuguese translation
Benjamin Otte [Sun, 13 Dec 2015 03:08:44 +0000 (04:08 +0100)]
widget: Pass a GtkCssStyleChange instead of a bitmask
Timm Bäder [Fri, 11 Dec 2015 09:05:37 +0000 (10:05 +0100)]
Gestures: Add some nullable annotations
Timm Bäder [Thu, 10 Dec 2015 15:54:59 +0000 (16:54 +0100)]
GtkFlowBox: Add missing nullable annotation
Timm Bäder [Wed, 9 Dec 2015 16:15:04 +0000 (17:15 +0100)]
GtkFlowBox: Fix copy/paste mistake in docs
Benjamin Otte [Sat, 12 Dec 2015 02:24:32 +0000 (03:24 +0100)]
cellrendererpixbuf: Don't set icon size for pixbufs
The code before the refactorings didn't set it, so we now don't set it
either.
Fixes images being way too smal inside iconviews.
Benjamin Otte [Sat, 12 Dec 2015 01:09:01 +0000 (02:09 +0100)]
cssnode: Catch case where a style didn't change
Catch the case where a CSS style did not change and don't emit the
style-changed signal in that case.
This saves not only the emission of the signal, but also doesn't cause
invalidation in child nodes, which would previously get a PARENT_STYLE
Benjamin Otte [Sat, 12 Dec 2015 01:02:04 +0000 (02:02 +0100)]
cssnode: Change style-changed signal
Instead of having old and new style, now have a GtkCssStyleChange opaque
object that will compute the changes you are interested in for you.
This simplifies change signal handlers quite a bit and avoids lots of
repeated computation in every signal handler.
Matthias Clasen [Fri, 11 Dec 2015 22:11:07 +0000 (17:11 -0500)]
inspector: Hide request mode for non-widgets
Only widgets have a request mode.
Lapo Calamandrei [Fri, 11 Dec 2015 20:08:53 +0000 (21:08 +0100)]
Adwaita: menu color change on the dark variant only
Matthias Clasen [Fri, 11 Dec 2015 17:25:31 +0000 (12:25 -0500)]
file chooser: Also apply the settings
I forgot that the settings object we're dealing with here
is in delay mode, so settings won't apply immediately.
Matthias Clasen [Fri, 11 Dec 2015 17:15:03 +0000 (12:15 -0500)]
file chooser: Store size more frequently
We were only storing the dialog size on unmap, but resetting to the
stored default value more often, e.g. on focus-out. This was causing
the dialog to 'jump back' to its remembered size after the user
manually resized it, leading to frustration and bug reports.
Instead, save the dialog size on every ::size-allocate of the toplevel.
To avoid needlessly spamming dconf, only write the new value if it
changed.
Matthias Clasen [Fri, 11 Dec 2015 15:50:25 +0000 (10:50 -0500)]
Add a drag-end callback
This will be helpful in figuring out life-cycle issues
with icon widgets.
Matthias Clasen [Fri, 11 Dec 2015 15:44:46 +0000 (10:44 -0500)]
Add a dnd testcase
This has tests for drag images, widgets, hotspots.
Jonas Ådahl [Tue, 8 Dec 2015 10:19:33 +0000 (18:19 +0800)]
wayland: Implement DND icon hotspot API
In Wayland, the hotspot of a DND icon is set using the buffer offset in
wl_buffer.attach. To implement this, add a private API to cause the
next wl_surface.attach to offset the new buffer with a given offset.
Setting a DND icon hotspot sets this offset while also queuing a redraw
of the window to trigger the wl_surface.attach.
https://bugzilla.gnome.org/show_bug.cgi?id=759168
Georges Basile Stavracas Neto [Fri, 11 Dec 2015 04:28:39 +0000 (02:28 -0200)]
placesviewrow: remove unneeded functions
These function declarations are not used nor implemented
anywhere, so remove them.
Matt Watson [Thu, 10 Dec 2015 23:50:25 +0000 (15:50 -0800)]
gtkstack: remove needless queue_resize
In gtk_stack_set_transition_position we should only need to
queue_resize if we are non-homogeneous, which is already done
earlier in the function.
Georges Basile Stavracas Neto [Tue, 3 Nov 2015 02:50:06 +0000 (00:50 -0200)]
placesview: implement available space
GtkPlacesView is a widget to display locations
in the computer, such as root ("/") and volumes,
separating the persistent devices from removable
ones.
From the latest mockups[1], GtkPlacesView would
display the available space of local drives like
partitions. This, however, is not implemented in
the current codebase.
Fix that by implementing the measurement of disk
space, and adding a new property GtkPlacesView::show-disk-usage
which controls the visibility of measured disks.
[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/nautilus/nautilus-next/other-locations.png
https://bugzilla.gnome.org/show_bug.cgi?id=759225
Cosimo Cecchi [Wed, 9 Dec 2015 18:45:26 +0000 (10:45 -0800)]
statusicon: plug memory leak
Lapo Calamandrei [Wed, 9 Dec 2015 17:56:38 +0000 (18:56 +0100)]
Adwaita: make menu bg color the same as popovers
fixes https://bugzilla.gnome.org/show_bug.cgi?id=759260
Lapo Calamandrei [Wed, 9 Dec 2015 16:43:40 +0000 (17:43 +0100)]
Adwaita: another try at color tweakings...
Lapo Calamandrei [Wed, 9 Dec 2015 16:38:38 +0000 (17:38 +0100)]
Adwaita: some more color tweaks and sass simplification
Lapo Calamandrei [Wed, 9 Dec 2015 13:52:03 +0000 (14:52 +0100)]
Adwaita: fix popover styling
...in the process simplified the touch-selection styling, check
and radios not fixed there since I'm going to add proper osd assets
for those (istead of forcing the dark variant assets there as before).
Benjamin Otte [Wed, 9 Dec 2015 12:29:59 +0000 (13:29 +0100)]
iconhelper_ Don't use deprecated functions
Use gtk_widget_get_direction() instead of
gtk_style_context_get_direction().
Benjamin Otte [Tue, 8 Dec 2015 19:57:24 +0000 (20:57 +0100)]
iconhelper: Remove the context argument
Instead, use the widget's context.
Benjamin Otte [Tue, 8 Dec 2015 14:52:35 +0000 (15:52 +0100)]
iconhelper: Get rid of _gtk_icon_helper_set_window()
Instead use the window of the owner widget.
Benjamin Otte [Tue, 8 Dec 2015 14:39:10 +0000 (15:39 +0100)]
iconhelper: Require a widget as construction argument
Note that the caller needs to ensure the widget lives as long as the
iconhelper as the iconhelper will not ref the widget.